<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <h2>重新审视javascript中的this</h2>
    <ul>
        <li>
            <h3>this是什么？</h3>
            切记,this是一个对象，对象，对象！！！，而不是一个类似指针样的东西。它可以在不同情况下作为要指代对象的别名来使用。this只有在函数被调用，或者通过构造函数new Object()的形式才会有this
        </li>
        <li>
            <h3>this的指向又指的什么？</h3>
            其实是指代的对象。并且指代的这个对象如果未绑定是可以变化的
        </li>
        <li>call, apply, bind 它接收的第一个参数即是上下文对象并将其赋给this</li>
        <li>普通函数的this在执行函数时绑定，而箭头函数中的this是在定义函数的时候绑定</li>
        <li>普通函数的this指向调用它的那个对象</li>
        <li>箭头函数没有this,所以无法基于箭头函数创建类。this继承自上层</li>
        <li>闭包中的this代指调用闭包的那个对象</li>
        <li>由字面量创建的对象this代指Window</li>
        <li>由构造函数创建的对象当中的this，代指该对象</li>
        <li>定时器内部回调函数的this指向window</li>
    </ul>
    <script src="./javascript.js"></script>
</body>
</html>